﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using DataObjects.Interface.Admin;
using DataObjects.SqlServer.Admin;
using DataObjects.Interface.HumanResources;
using DataObjects.SqlServer.HumanResources;
using DataObjects.Interface.Person;
using DataObjects.SqlServer.Person;
using DataObjects.Interface.Production;
using DataObjects.SqlServer.Production;
using DataObjects.Interface.Sales;
using DataObjects.SqlServer.Sales;
using DataObjects.Interface;
using DataObjects.SqlServer;

namespace DataObjects
{
    public static class DataAccess
    {
        private static readonly string connectionStringName = ConfigurationManager.AppSettings.Get("ConnectionStringName");
        private static readonly IDaoFactory factory = DaoFactories.GetFactory(connectionStringName);

        public static IAudittingLogDao AudittingLogDao { get { return factory.AudittingLogDao; } }

        public static IAutoIdDao AutoIDDao { get { return factory.AutoIDDao; } }

        public static IDBOptionDao DBOptionDao { get { return factory.DBOptionDao; } }

        public static IDecentralizationDao DecentralizationDao { get { return factory.DecentralizationDao; } }

        public static IUserGroupDao UserGroupsDao { get { return factory.UserGroupsDao; } }

        public static IUserDao UsersDao { get { return factory.UsersDao; } }

        public static IDepartmentDao DepartmentDao { get { return factory.DepartmentDao; } }

        public static IJobCandidateDao JobCandidateDao { get { return factory.JobCandidateDao; } }

        public static ISalarySheetDao SalarySheetDao { get { return factory.SalarySheetDao; } }

        public static ISalarySheetDetailDao SalarySheetDetailDao { get { return factory.SalarySheetDetailDao; } }

        public static ITimeSheetDao TimeSheetDao { get { return factory.TimeSheetDao; } }

        public static ITimeSheetDetailDao TimeSheetDetailDao { get { return factory.TimeSheetDetailDao; } }

        public static ITimeSheetSignDao TimeSheetSignDao { get { return factory.TimeSheetSignDao; } }

        public static IAccountingObjectDao AccountingObjectDao { get { return factory.AccountingObjectDao; } }

        public static IAccountingObjectCategoryDao AccountingObjectCategoryDao { get { return factory.AccountingObjectCategoryDao; } }

        public static ICountryRegionDao CountryRegionDao { get { return factory.CountryRegionDao; } }

        public static IDistrictDao DistrictsDao { get { return factory.DistrictsDao; } }

        public static IProvincesDao ProvincesDao { get { return factory.ProvincesDao; } }

        public static IWorkerShiftDao WorkerShiftDao { get { return factory.WorkerShiftDao; } }

        public static IWorkerShiftForEmployeesDao WorkerShiftForEmployeesDao { get { return factory.WorkerShiftForEmployeesDao; } }

        public static ICurrencyDao CurrencyDao { get { return factory.CurrencyDao; } }

        public static ICurrencyRateDao CurrencyRateDao { get { return factory.CurrencyRateDao; } }

        public static IInventoryItemDao InventoryItemDao { get { return factory.InventoryItemDao; } }

        public static IInventoryItemCategoryDao InventoryItemCategoryDao { get { return factory.InventoryItemCategoryDao; } }

        public static IInventoryLedgerDao InventoryLedgerDao { get { return factory.InventoryLedgerDao; } }

        public static IInwardOutwardDao InwardOutwardDao { get { return factory.InwardOutwardDao; } }

        public static IInwardOutwardDetailDao InwardOutwardDetailDao { get { return factory.InwardOutwardDetailDao; } }

        public static IShipMethodDao ShipMethodDao { get { return factory.ShipMethodDao; } }

        public static IStockDao StockDao { get { return factory.StockDao; } }

        public static ITransferDao TransferDao { get { return factory.TransferDao; } }

        public static ITransferDetailDao TransferDetailDao { get { return factory.TransferDetailDao; } }

        public static IUnitsDao UnitsDao { get { return factory.UnitsDao; } }

        public static IGeneralLedgerDao GeneralLedgerDao { get { return factory.GeneralLedgerDao; } }

        public static IInvoiceDao InvoiceDao { get { return factory.InvoiceDao; } }

        public static IInvoiceDetailDao InvoiceDetailDao { get { return factory.InvoiceDetailDao; } }

        public static IPaymentDao PaymentDao { get { return factory.PaymentDao; } }

        public static IPaymentDetailDao PaymentDetailDao { get { return factory.PaymentDetailDao; } }

        public static IReceiptDao ReceiptDao { get { return factory.ReceiptDao; } }

        public static IReceiptDetailDao ReceiptDetailDao { get { return factory.ReceiptDetailDao; } }

        public static IRestaurantAreaDao RestaurantAreaDao { get { return factory.RestaurantArea; } }

        public static IRestaurantMenuDao RestaurantMenuDao { get { return factory.RestaurantMenuDao; } }

        public static IRestaurantMenuCategoryDao RestaurantMenuCategoryDao { get { return factory.RestaurantMenuCategoryDao; } }

        public static IRestaurantMenuNormDao RestaurantMenuNormDao { get { return factory.RestaurantMenuNormDao; } }

        public static IRestaurantDao RestaurantDao { get { return factory.RestaurantsDao; } }

        public static IRestaurantTableDao RestaurantTableDao { get { return factory.RestaurantTableDao; } }

        public static IRestaurantMenuNormDetailDao RestaurantMenuNormDetailDao { get { return factory.RestaurantMenuNormDetailDao; } }
    }
}